package com.jrx.anytxn.param.service.product;

import com.jrx.anytxn.i18n.response.TxnPage;
import com.jrx.anytxn.common.exception.TxnBizException;
import com.jrx.anytxn.param.dto.product.PrDelqTableReq;
import com.jrx.anytxn.param.dto.product.PrDelqTableRes;
import com.jrx.anytxn.param.entity.PrDelqTable;

/**
 * 延滞参数service层
 *
 * @author yf
 * date 2019/10/17 0017
 * @version V1.0
 **/
public interface IDelqTableService {

    /**
     * 根据租户ID和延滞参数表ID查询信息
     *
     * @param tenantId 租户ID
     * @param delqId   延滞参数表ID
     * @return com.jrx.anytxn.param.dto.product.PrDelqTableRes
     * @author fan.yang
     * date: 2019/10/17 0017 下午 14:22
     */
    PrDelqTableRes findByTenIdAndDelqId(String tenantId, String delqId) throws TxnBizException;

    /**
     * 根据租户ID分页查询信息
     *
     * @param pageNum  页码
     * @param pageSize 页大小
     * @param tenantId 租户ID
     * @return com.jrx.anytxn.common.data.TxnPage<com.jrx.anytxn.param.dto.product.PrDelqTableRes>
     * @author fan.yang
     * date: 2019/10/17 0017 下午 14:22
     */
    TxnPage<PrDelqTableRes> findAllPageByTenId(Integer pageNum, Integer pageSize, String tenantId) throws TxnBizException;

    /**
     * 新增延滞参数表信息
     *
     * @param prDelqTableReq 延滞参数请求参数
     * @return com.jrx.anytxn.param.dto.product.PrDelqTableRes
     * @author fan.yang
     * date: 2019/10/17 0017 下午 14:22
     */
    PrDelqTableRes addDelqTable(PrDelqTableReq prDelqTableReq) throws TxnBizException;

    /**
     * 根据租户ID和延滞参数表ID编辑信息
     *
     * @param prDelqTableReq 延滞参数请求参数
     * @return com.jrx.anytxn.param.dto.product.PrDelqTableRes
     * @author fan.yang
     * date: 2019/10/17 0017 下午 14:22
     */
    PrDelqTableRes modifyDelqTable(PrDelqTableReq prDelqTableReq) throws TxnBizException;

    /**
     * 根据租户ID和延滞参数表ID删除信息
     *
     * @param tenantId 租户ID
     * @param delqId   延滞参数表ID
     * @return java.lang.Boolean
     * @author fan.yang
     * date: 2019/10/17 0017 下午 14:22
     */
    Boolean removeByTenIdAndDelqId(String tenantId, String delqId) throws TxnBizException;

    /**
     * 根据租户ID和延滞参数表ID查询信息
     * 禁止controller使用
     *
     * @param tenantId 租户ID
     * @param delqId   延滞参数表ID
     * @return com.jrx.anytxn.param.dto.product.PrDelqTableRes
     * @author fan.yang
     * date: 2019/10/17 0017 下午 14:22
     */
    PrDelqTable findByDelqId(String tenantId, String delqId) throws TxnBizException;

}
